﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Xml.Linq;
using System.Linq;

namespace ArmoryBrowser.Entities.Achievements
{
    public class CharacterInfo
    {
        #region Fields
        private String _battleGroupField;
        private String _charUrlField;
        private String _classField;
        private String _classIdField;
        private String _classUrlField;
        private String _factionField;
        private String _factionIdField;
        private String _genderField;
        private String _genderIdField;
        private String _guildNameField;
        private String _guildUrlField;
        private String _lastModifiedField;
        private String _levelField;
        private String _nameField;
        private String _pointsField;
        private String _prefixField;
        private String _raceField;
        private String _raceIdField;
        private String _realmField;
        private String _suffixField;
        private String _titleIdField;
        #endregion
        #region Properties
        public String BattleGroup
        {
            get
            {
                return this._battleGroupField;
            }
            set
            {
                this._battleGroupField = value;
            }
        }
        public String CharUrl
        {
            get
            {
                return this._charUrlField;
            }
            set
            {
                this._charUrlField = value;
            }
        }
        public String ClassName
        {
            get
            {
                return this._classField;
            }
            set
            {
                this._classField = value;
            }
        }
        public String ClassId
        {
            get
            {
                return this._classIdField;
            }
            set
            {
                this._classIdField = value;
            }
        }
        public String ClassUrl
        {
            get
            {
                return this._classUrlField;
            }
            set
            {
                this._classUrlField = value;
            }
        }
        public String Faction
        {
            get
            {
                return this._factionField;
            }
            set
            {
                this._factionField = value;
            }
        }
        public String FactionId
        {
            get
            {
                return this._factionIdField;
            }
            set
            {
                this._factionIdField = value;
            }
        }
        public String Gender
        {
            get
            {
                return this._genderField;
            }
            set
            {
                this._genderField = value;
            }
        }
        public String GenderId
        {
            get
            {
                return this._genderIdField;
            }
            set
            {
                this._genderIdField = value;
            }
        }
        public String GuildName
        {
            get
            {
                return this._guildNameField;
            }
            set
            {
                this._guildNameField = value;
            }
        }
        public String GuildUrl
        {
            get
            {
                return this._guildUrlField;
            }
            set
            {
                this._guildUrlField = value;
            }
        }
        public String LastModified
        {
            get
            {
                return this._lastModifiedField;
            }
            set
            {
                this._lastModifiedField = value;
            }
        }
        public String Level
        {
            get
            {
                return this._levelField;
            }
            set
            {
                this._levelField = value;
            }
        }
        public String Name
        {
            get
            {
                return this._nameField;
            }
            set
            {
                this._nameField = value;
            }
        }
        public String Points
        {
            get
            {
                return this._pointsField;
            }
            set
            {
                this._pointsField = value;
            }
        }
        public String Prefix
        {
            get
            {
                return this._prefixField;
            }
            set
            {
                this._prefixField = value;
            }
        }
        public String Race
        {
            get
            {
                return this._raceField;
            }
            set
            {
                this._raceField = value;
            }
        }
        public String RaceId
        {
            get
            {
                return this._raceIdField;
            }
            set
            {
                this._raceIdField = value;
            }
        }
        public String Realm
        {
            get
            {
                return this._realmField;
            }
            set
            {
                this._realmField = value;
            }
        }
        public String Suffix
        {
            get
            {
                return this._suffixField;
            }
            set
            {
                this._suffixField = value;
            }
        }
        public String TitleId
        {
            get
            {
                return this._titleIdField;
            }
            set
            {
                this._titleIdField = value;
            }
        }
        #endregion
        #region Constructor
        public CharacterInfo(XElement element)
        {
            BattleGroup = element.GetAttributeValue("battleGroup");
            CharUrl = element.GetAttributeValue("charUrl");
            ClassName = element.GetAttributeValue("class");
            ClassId = element.GetAttributeValue("classId");
            ClassUrl = element.GetAttributeValue("classUrl");
            Faction = element.GetAttributeValue("faction");
            FactionId = element.GetAttributeValue("factionId");
            Gender = element.GetAttributeValue("gender");
            GenderId = element.GetAttributeValue("genderId");
            GuildName = element.GetAttributeValue("guildName");
            GuildUrl = element.GetAttributeValue("guildUrl");
            LastModified = element.GetAttributeValue("lastModified");
            Level = element.GetAttributeValue("level");
            Name = element.GetAttributeValue("name");
            Points = element.GetAttributeValue("points");
            Prefix = element.GetAttributeValue("prefix");
            Race = element.GetAttributeValue("race");
            RaceId = element.GetAttributeValue("raceId");
            Realm = element.GetAttributeValue("realm");
            Suffix = element.GetAttributeValue("suffix");
            TitleId = element.GetAttributeValue("titleId");
        }
        #endregion
    }
}
